package com.kantboot.functional.pay.wechat.service;

import com.kantboot.functional.pay.order.domian.entity.FunctionalPayOrder;
import com.kantboot.functional.pay.wechat.util.WechatPayResult;
import com.kantboot.functional.pay.wechat.util.WechatRefundsResult;

/**
 * 关于微信支付的服务
 */
public interface IFunctionalPayWechatOrderService {

    /**
     * 获取支付返回值
     * 根据小程序支付
     * @param orderId 订单id
     * @param code 小程序code
     * @return 支付返回值
     */
    WechatPayResult getPayResultByMp(Long orderId, String code);


    /**
     * 处理微信支付回调
     */
    FunctionalPayOrder handleWechatPay(String orderId);

    /**
     * 整单退款
     */
    FunctionalPayOrder refundByOrder(String orderId);


    /**
     * 根据退款结果修改订单状态
     */
    FunctionalPayOrder handleWechatRefund(String orderId, WechatRefundsResult wechatRefundsResult);

    /**
     * 查询退款结果
     */
    WechatRefundsResult queryWechatRefund(String orderId);

    void refreshOrderTaskStatus();

}
